home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / news / inn1.000 / inn1.4sec-linux-src.tar / inn / samples / innstat < prev    next >
Text File  |  1993-01-29  |  2KB  |  130 lines

  1. #! /bin/sh
  2. ##  $Revision: 1.7 $
  3. ##  Display status of INN.
  4. ##  Written by Landon Curt Noll <chongo@toad.com>.
  5.  
  6. ##  =()<. @<_PATH_SHELLVARS>@>()=
  7. . /news/lib/innshellvars
  8.  
  9. SYSLOG_CRIT=news.crit
  10. SYSLOG_ERR=news.err
  11. SYSLOG_NOTICE=news.notice
  12. SYSLOGS="${SYSLOG_CRIT} ${SYSLOG_ERR} ${SYSLOG_NOTICE}"
  13.  
  14. ##  Set up the list of log files.
  15. LOGS="${SYSLOGS}"
  16. if [ -f "${MOST_LOGS}/`basename ${ERRLOG}`" ]; then
  17.     LOGS="${LOGS} `basename ${ERRLOG}`"
  18. else
  19.     LOGS="${LOGS} ${ERRLOG}"
  20. fi
  21. if [ -f "${MOST_LOGS}/`basename ${LOG}`" ]; then
  22.     LOGS="${LOGS} `basename ${LOG}`"
  23. else
  24.     LOGS="${LOGS} ${LOG}"
  25. fi
  26.  
  27. ##  Show INND status.
  28. echo 'Server status:'
  29. ctlinnd mode 2>&1
  30.  
  31. ##  Show disk usage.  You might have to change this.
  32. echo ''
  33. echo 'Disk usage:'
  34. df ${SPOOL} ${NEWSLIB} ${INCOMING} ${BATCH} ${MOST_LOGS} |
  35.     grep '/dev/' | sort -u
  36.  
  37. ##  Show size of batch files.
  38. echo ''
  39. echo 'Batch file sizes:'
  40. ( cd ${BATCH}; ls -Cs | tail +2 )
  41.  
  42. ##  Show size of log files.
  43. echo ''
  44. echo 'Log file sizes:'
  45. ( cd ${MOST_LOGS}; ls -Cs ${LOGS} *.log 2>&1 )
  46.  
  47. ##  Show the lock files
  48. echo ''
  49. (    cd ${LOCKS}
  50.     set -$- LOCK.*
  51.     if [ -f "$1" ]; then
  52.         echo 'Lock files:'
  53.         ls -C LOCK.* 2>&1
  54.     else
  55.         echo 'Innwatch is not running'
  56.     fi
  57. )
  58.  
  59. echo ''
  60. echo 'Server connections:'
  61. ctlinnd -t60 name '' 2>&1 \
  62.     | ${SED} -e '/^[     ]*$/d' \
  63.     | ${AWK} '{print length($0), $0}' \
  64.     | sort -n \
  65.     | ${SED} 's/^[0-9][0-9]*  *//' \
  66.     | ${AWK} '
  67. BEGIN {
  68.     linelen = 0;
  69. }
  70. {
  71.     len = length($0);
  72.     if (len >= 80) {
  73.     end = "";
  74.     }
  75.     else if (len >= 72) {
  76.     end = "\t\t\t";
  77.     len += 16 + (8 - len % 8);
  78.     }
  79.     else if (len >= 64) {
  80.     end = "\t";
  81.     len += (8 - len % 8);
  82.     }
  83.     else if (len >= 56) {
  84.     end = "\t\t";
  85.     len += 8 + (8 - len % 8);
  86.     }
  87.     else if (len >= 48) {
  88.     end = "\t\t\t";
  89.     len += 16 + (8 - len % 8);
  90.     }
  91.     else if (len >= 40) {
  92.     end = "\t";
  93.     len += (8 - len % 8);
  94.     }
  95.     else if (len >= 32) {
  96.     end = "\t";
  97.     len += (8 - len % 8);
  98.     }
  99.     else if (len >= 24) {
  100.     end = "\t\t";
  101.     len += 8 + (8 - len % 8);
  102.     }
  103.     else if (len >= 16) {
  104.     end = "\t";
  105.     len += (8 - len % 8);
  106.     }
  107.     else if (len >= 8) {
  108.     end = "\t\t";
  109.     len += 8 + (8 - len % 8);
  110.     }
  111.     else {
  112.     end = "\t\t\t";
  113.     len += 16 + (8 - len % 8);
  114.     }
  115.     if (len + linelen > 80) {
  116.     printf("\n");
  117.     linelen = len;
  118.     }
  119.     else {
  120.     linelen += len;
  121.     }
  122.     printf("%s%s", $0, end);
  123. }
  124. END {
  125.     if (end != "\n") {
  126.     printf("\n");
  127.     }
  128.     printf("\n");
  129. }'
  130.